<?php 
namespace app\front\service\v1;

use app\front\service\BasePayService;
use think\Session;
class Pay extends BasePayService
{
   
   
    public  function gzhPay(){
        //判断两个值是否存在于session中
        //如果都session内店名和金额不存在则将前台表单接收到的值存储到session
        if(session('store_name')==null && session('moneyNum')==null){
            //如果表单有数据则赋值
            if(input('param.store_name') && input('param.moneyNum'))
            {
                session('store_name',input('param.store_name'));
                session('moneyNum',input('param.moneyNum'));
            }else{ //如果表单内无数据
                echo date("Y-m-d H:i:s",time())." system error place try again！";
                logs("judgeError.txt", date("Y-m-d H:i:s",time())." 错误信息:session为空且接受不到表单数据！".session('PHPSESSID') );
            }
        }else{
            //如果session内存在店名和金额
            //如果session内存在店名和金额且表单存在数据
            if(input('param.store_name') && input('param.moneyNum'))
            {
                //判断表单数据与session是否相等如不等 则赋值给session
                if((session('store_name')!=input('param.store_name'))||(session('moneyNum')!=input('param.moneyNum')))
                    session('store_name',input('param.store_name'));
                    session('moneyNum',input('param.moneyNum'));
            }
        }
        if(session('openid') && session('store_name') && session('moneyNum')){
            //支付成功后将用户信息存储到数据库userinfo表中
            //判断用户opid是否已存在
            if($this->existUserinfo(session('openid')))
            {
                $this->updateUserInfo(session('openid'));
            }else{
                //,$souce=2表示是顾客
                $this->saveUserInfo(session('openid'),$souce=2);
            }
            //获取门店名
            $store_name=session('store_name');
            //获取用户从输入金额页面输入的支付金额
            $moneyNum= session('moneyNum');
            logs("json.txt", "moneyNum=".$moneyNum);
            //通过门店名获取门店Id
            $store_id= $this->getStoreIdForStoreName($store_name);
            //获取订单号 
            $out_trade_no=makeOrderNo();
            //将信息存储到临时信息表中
            //处理输入金额，去掉分后面的小数点
            $moneyNum= floor(bcmul($moneyNum,100));
            $openid=session('openid');
            $this->Temporary_add($out_trade_no,$openid, $store_id, $store_name, $moneyNum);
            //获取预支付ID
            $prepay_id=$this->getPrepayId($out_trade_no,$moneyNum);
            logs("json.txt", "prepay_id=". $prepay_id);
            //获取公众号支付所需参数并存储到json中
            $json = $this->getJsGzhParams($prepay_id);
            return $json;
        }else{
            $this->getOpenId();
        }
        
        
    }
    public function laotanPay(){
        $openid=$this->getOpenId();
        $out_trade_no=makeOrderNo();
        $moneyNum=input('param.moneyNum');//I('moneyNum');
        $moneyNum= floor(bcmul($moneyNum,100));
        //获取预支付ID
        $prepay_id=$this->getPrepayId($out_trade_no,$moneyNum);
        //获取公众号支付所需参数并存储到json中
        $json = $this->getJsGzhParams($prepay_id);
        //向支付页面传入
//         $this->assign('mch_billno', $out_trade_no);
//         $this->assign('json', $json);
//         //带着参数跳转到gzhPay.html
//         $this->display('laotanPay');
       // return $json;
    }
}
?>


